"""
    User 校验
    通过 md5 和 base64 进行加密
"""

import hashlib,base64,random,string

class UserService:

    # 加密密码
    # salt 为随机生成的加密字符串，每个用户不同
    @staticmethod
    def genePwd(pwd, salt):
        m = hashlib.md5() # 创建 hashlib 对象

        str = "%s-%s"%(base64.encodebytes(pwd.encode("utf-8")), salt) # 加密规则

        m.update(str.encode("utf-8")) # 进行md5加密（注意使用utf-8）

        return m.hexdigest() # 返回十六进制加密


    # 存储cookie加密
    @staticmethod
    def geneAuthCode(user_info):

        m = hashlib.md5()  # 创建 hashlib 对象

        str = '%s-%s-%s-%s' % (user_info.uid, user_info.login_name, user_info.login_pwd, user_info.login_salt) # 加密规则

        m.update(str.encode("utf-8")) # 进行md5加密（注意使用utf-8）

        return m.hexdigest() # 返回十六进制加密


    # 生成user的salt
    @staticmethod
    def geneSalt(length=16):

        key_list = [ random.choice( ( string.ascii_letters + string.digits ) ) for i in range(length) ]

        return (''.join(key_list))